package com.haozhen.sql

/**
  * @author haozhen
  * @email haozh@ync1.com
  * @date 2021/1/31  20:54
  */
object InputOutputFileDemo {

  def main(args: Array[String]): Unit = {
    import org.apache.spark.sql.{DataFrame, SparkSession}
    val spark: SparkSession = SparkSession.builder().master("local[*]").appName(this.getClass.getCanonicalName().init).getOrCreate()

    import org.apache.spark.sql.SaveMode
    import spark.implicits._
    import org.apache.spark.sql.functions._


//    val df1: DataFrame = spark.read.load("data/users.parquet")
//
//    df1.write
//        .mode("overwrite")
//        .save("data/myusers.parquet")

    //csv
//    spark.read.format("csv")
//        .option("header","true")
//        .option("inferschema","true")
//        .load("data/people1.csv").show()

//    df1.createTempView("t1")
//    spark.sql(
//      """
//        |select * from t1
//      """.stripMargin).show()
//    spark.sql(
//      """
//        | create or replace temporary view users
//        | using parquet
//        | options (path "data/users.parquet")
//      """.stripMargin)
//    //定义参数
//    spark.sql(
//      """
//        | select * from users
//      """.stripMargin).show()

//    spark.sql(
//      """
//        | create or replace temporary view people
//        | using csv
//        | options(path "data/people1.csv",
//        |         header "true",
//        |         inferschema "true")
//      """.stripMargin)
//    spark.sql(
//      """
//        |select * from people
//      """.stripMargin).write
//        .mode("overwrite")
//        .format("csv")
//        .save("data/people1")
//
//    val df3: DataFrame = spark.read.format("json").load("data/emp.json")
//
//
//    df3.show()
//
//    spark.sql(
//      """
//        | create or replace temporary view emp
//        | using json
//        | options (path "data/emp.json")
//      """.stripMargin)
//
//    spark.sql(
//      """
//        |select * from emp
//      """.stripMargin).show()
//&TimeZone=Asia/Shanghai
    val frame: DataFrame = spark.read.format("jdbc")
      .option("url", "jdbc:mysql://localhost:3306/fjdw?useSSL=false&serverTimezone=UTC")
      .option("user", "root")
      .option("password", "root")
      .option("driver", "com.mysql.jdbc.Driver")
      .option("dbtable", "sys_user")
      .load()
    frame.show()

//    frame.write.format("json").mode(SaveMode.Overwrite).save("data/sys_user")

    frame.write.format("jdbc")
      .option("url", "jdbc:mysql://localhost:3306/fjdw?useSSL=false&serverTimezone=UTC")
      .option("user", "root")
      .option("password", "root")
      .option("driver", "com.mysql.jdbc.Driver")
      .option("dbtable", "sys_user_bak")
      .mode(SaveMode.Overwrite)
        .save()
    spark.close()
  }
}
